const CryptoJS = require('crypto-js');

// 解密函数
function decryptData(encryptedData, sessionKey, iv) {
    // 将 Base64 编码的密钥和向量转换为 WordArray 对象
    const sessionKeyWordArray = CryptoJS.enc.Base64.parse(sessionKey);
    const ivWordArray = CryptoJS.enc.Base64.parse(iv);

    // 将 Base64 编码的加密数据转换为 WordArray 对象
    const encryptedDataWordArray = CryptoJS.enc.Base64.parse(encryptedData);

    // 使用 AES 解密
    const decrypted = CryptoJS.AES.decrypt(
        {
            ciphertext: encryptedDataWordArray
        },
        sessionKeyWordArray,
        {
            iv: ivWordArray,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        }
    );

    // 将解密后的数据转换为字符串
    const decryptedData = decrypted.toString(CryptoJS.enc.Utf8);

    return decryptedData;
}

// 示例加密数据
const encryptedData = '加密的数据';
const sessionKey = '会话密钥';
const iv = '加密的向量';

// 解密数据
const decryptedData = decryptData(encryptedData, sessionKey, iv);
console.log('解密后的数据:', decryptedData);